package com.cy.java.util;


import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

public class ReflectUtil {
    /**
     * 基于传入的类型构建对象实例
     */
   //...可变参数 但是只可以写一个可变参数 可变参数的要求还要放在最后面
    //可变数是一个数组
    public static Object newInstance(String pkgClass, Object []args,Class<?>...parameterTypes) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
     Class cls=Class.forName(pkgClass);
     Constructor c=cls.getDeclaredConstructor(parameterTypes);
     c.setAccessible(true);//设置为可访问
        return c.newInstance(args);
        //调用构造函数getDeclaredConstructors任意访问修饰
        //getConstructors调用的都是public的构造方法
    }
}
